#ifndef CINY_CInterface
#define CINY_CInterface

#include "Data.h"
#include "Result.h"
#include "CNet.h"

// void StartServer();
// void Stop();
// void Serve();

// 这个是一个接口,里面定义了一系列服务器的方法

// connect 就是在服务器accept之后建立的tcp连接
typedef struct IConnect{
    void (*Start)(void* self);
    void (*Stop)(void* self);
    int (*GetConnectID)(void* self);
}IConnect;


typedef struct IRequest{
    IConnect* (*GetConnection)(void* self);
    Data* (*GetData)(void *self);
}IRequest;



typedef struct IRouter{
    void (*BeforeHandle) (IRequest* request);
    void (*Handle) (IRequest* request);
    void (*AfterHandle) (IRequest* request);
}IRouter;

typedef struct IServer {
    void (*Start)(void* self);
    void (*Stop)(void* self);
    void (*Serve)(void* self);
    void (*AddRouter)(void*self ,IRouter* router)
} IServer;






// 用以处理链接的接口函数
typedef Result(*HandleTCPConnectFunction)(void* selfTCPConnect,char* content,int len);

#endif